Date: Tue, 10 Dec 1996 16:50:10 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Mon, 02 Dec 1996 18:58:50 GMT
Content-length: 6217

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<TITLE>CSE/ENGR 142 Reference List</TITLE>

<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.03z">
</HEAD>
<BODY>
<H1>CSE/ENGR 142: Books and Resources <BR>
</H1>
<P>
For CSE/ENGR 142, you really don't need any books apart from the
textbook and the course notes. Beginning computer programming
doesn't work like History or Psychology, where the more background
reading you do the better off you are. 
<P>
If you want another book to buy, there is a huge selection in
the computer section of the University Bookstore. The range of
choices you find there can be overwhelming. Many of the books
are aimed at people who already know another programming language
and who just want to learn C. Others are aimed at casual computer
users who want to learn a little about programming. Still others
are reference manuals for people who already know C and need more
details about it. As a student in 142, you might fit into one
or more of those categories, or none.
<P>
If you plan to continue in computer science, you might eventually
want to buy some C books for your library. But browse leisurely
before you buy.<BR>
<H3>C Reference Books</H3>
<P>
Reference books are different from textbooks. They are <EM>not</EM>
beginner's books, but rather are terse, precise definitions of
much of the language. Valuable to those of you who expect to do
lots of C programming (CSE majors for example), but probably not
so useful to more casual programmers.</P>
<UL>
<LI>Brian W. Kernighan &amp; Dennis M. Ritchie, <CITE>The C Programming
Language</CITE>, Prentice Hall, 1988. Until a few years ago, this
was the book to have, if you were having only one. It is still
widely used and quoted. Often you will find it referred to simply
as &quot;K&amp;R.&quot; Now that C is an ANSI/ISO standard, K&amp;R
is not quite as essential as it used to be, but it still highly
recommended.
<LI><I>ANSI/ISO Standard 9899-1990: C Programming Language</I>,
American National Standards Institute, 1990. This is the official
description of the C language. To buy it directly from ANSI is
a little expensive. A better choice is the book by Schildt below.
<LI>Herbert Schildt, <I>The Annotated ANSI C Standard</I>, Osborne
McGraw-Hill, 1990. This book contains the entire ANSI standard
(on the left side of each facing page), with annotations on the
right side. {Caution: in some copies of the book, the left-hand
p. 131 is duplicated as p.132, and the true p. 132 is missing.}
<LI>P.J. Plauger and Jim Brodie, <I>Standard C: A Reference</I>,
Prentice Hall, 1996. A great book, compact, easy to read, and
inexpensive. What's more, when you buy the book you get a diskette
with the full text of the book in HTML. Who could pass this up?
<BR>
<LI>Samuel P. Harbison &amp; Guy L. Steele Jr., <CITE>C, A Reference
Manual</CITE>, Prentice Hall, 1995.<BR>
</UL>
<H3>Reserve Books</H3>
<P>
A number of books about C are on reserve in the Engineering Library.
<BR>
<H3>For Advanced C Programmers</H3>
<UL>
<LI>Steve McConnell, <I>Code Complete: A Practical Handbook of
Software Construction</I>. Microsoft Press, 1993. A great book
whose intention is to &quot;narrow the gap between the knowledge
of industry gurus and professors on the one hand and common commercial
practice on the other.&quot; Examples are given in Pascal and
C. Much of the discussion about style and defensive programming
practices is useful even for beginning programmers.
</UL>
<P>
<UL>
<LI>Steve McGuire, <I>Writing Solid Code: Microsoft's Techniques
for Developing Bug-Free C Programs</I>.  Microsoft Press, 1993.
The title tells the story.  A collection of tips for writing programs
which debug themselves.<BR>
<LI>Peter van der Linden, <I>Expert C Programming: Deep C Secrets</I>,
Prentice Hall, 1994. An absolutely terrific book: funny, insightful,
authoritative, beautifully written, crammed with interesting stuff.
Not for beginners, however.<BR>
</UL>
<H3>C Book Reviews</H3>
<P>
A lengthy and now dated document grabbed off the net that reviews
about 25 C books, from begining to advanced. 
<UL>
<LI><A href="cbooks.txt">The C and C++ Review</A> (plain text,
about 100k; July, 1994). 
</UL>
<H3>Want To Learn C On Your Own?</H3>
<P>
If you are looking for self-instruction in C, check out the reviews
in <A href="cbooks.txt">The C and C++ Review</A> of &quot;Teach
Yourself C&quot; and &quot;New C Primer Plus, 2nd ed.&quot;, which
seemed to be his favorites among C-as-a-2nd-(programming)-language
books. 
<H3>Various Online C Resources</H3>
<UL>
<LI><A href=http://vinny.csd.mu.edu>Learn C/C++ Today:</A> (Now
longer available when checked 11/96.) This is a very nice compilation
of tutorials, book reviews and other C stuff. <BR>
<LI><A href=http://www.cm.cf.ac.uk/Dave/C/CE.html>Programming in C:</A>
an online C course in England. <BR>
<LI>The C FAQ (Frequently Asked Questions) List: A great source
of C lore. I've put several links below because the various servers
are often busy, and because the text versions may be updated more
frequently than the html (Netscape) versions. 
<UL>
<LI><A href=ftp://rtfm.mit.edu/pub/usenet/news.answers/C-faq/abridged>The C FAQ (abridged)</A>
(plain text version, about 40k). 
<LI><A href=ftp://rtfm.mit.edu/pub/usenet/news.answers/C-faq/faq>The C FAQ (unabridged)</A>
(plain text version, about 150k). 
<LI><A href=http://www.lysator.liu.se/c/c-faq/index.html>The C FAQ (unabridged)</A>
(html version). 
<LI><A href=http://www.cis.ohio-state.edu/hypertext/faq/usenet-faqs/html/C-faq/top.html>The C FAQ (unabridged)</A>
(html version). 
<LI><A href=http://www.eskimo.com/~scs/C-faq.top.html>C FAQ index</A>
as provided by the author of the FAQ himself. 
</UL>
</UL>
<H3>Free C Software? </H3>
<P>
A former 142 student reported finding a list of freeware compilers
and interpreters <A href=http://cuiwww.unige.ch/cgi-bin/freecomp>here.</A>
Let us know if you find any of this especially useful. 
<ADDRESS>
cse142-webmaster@cs.washington.edu (Last Update: 011/27/96)
</ADDRESS>
</BODY>
</HTML>
